With the explosive growth of the Internet and the increasing power of computers, interest has grown in a class of application called video-on-demand, where clients can request media files (video, audio, data . . . , etc.) at any time for immediate or future watching. However, video-on-demand poses a new challenge, that is, a huge consumption of server bandwidth and network bandwidth. Traditionally, each request is served by a dedicated unicast stream, and the cost of the unicast based VOD system is enormous. The advent of channel merging technology creates a brand new model for VOD service, and its goal is to reduce the server bandwidth required to satisfy clients requesting a particular object video by having them simultaneously receive two or more streams. As clients receive and store the data for immediate watching purposes, the server can have one video object served to more than one user simultaneously by multicast and thus reduce both the network bandwidth and server bandwidth.
Existent channel merging methods can be classified as three types: static broadcast, merge tree construction and event driven. The static broadcast, exampled by Skyscraper, broadcasts segments of a demanded object in several channels with a specified period and length. The advantage of the static broadcast is its simplicity and relatively high efficiency in very busy environment. However, the performance of the static broadcast is poor when the load of system is not high or the popularity of different objects is disperse due to its rigid resource allocation. The merge tree construction, exampled by Dyadic, dynamically constructs a merge tree when the new users arrive, with the nodes of tree representing channels. A channel is not allocated until it is really needed by a user. This method overcomes the drawbacks of the static broadcast by eliminating the waste of idle channel resources. However, as the merge tree is exclusively determined by the joining time of new users, it does not directly support VCR-like functions, i.e., random stop, pause, fast/back forward, etc. The Event-driven, exampled by SRMT (Simple Reachable Merge Target) and CT (Closest Target), dynamically determines a set of channels that the client should subscribe to when the client indicates to the server of playing, stopping, jumping or merging events. VCR-like functions are supported by this method because the merge path for each client is dynamically adjusted according to user interactions.
A method of merging of two channels will be described below in conjunction with FIGS. 1, 2 and 3:
At step 1, the VOD server 1 receives a request for playing a video program from a client A and, according to the request, sends the requested video program to the client A on the channel S6.
At step 2, when receiving the same VOD request as that of the client A after some time (T) from a client B, the VOD server 1 creates a channel S11 and informs the client B to get ready for receiving from the VOD server 1 the video program on the channel S11 and the channel S6.
At step 3, the VOD server 1 sends the video program from its starting point (a) to the client B on the channel S11, and the client B receives it, and meantime the client B receives on the channel S6 in synchronism with the client A and stores the subsequent part of the video program continuously sent from the VOD server 1.
At step 4, the VOD server 1 takes the channel S6 as the parent channel of the channel S11 (i.e., the channel to which the channel S11 will merge). When the video program received by the client B on the channel S11 reaches the beginning point (b) of the video program that it receives on the channel S6 and stores, i.e., when another time of T is passed, the channel S11 is merged into the channel S6. The VOD server 1 will close the channel S11 and stops sending the video program to the client B on the channel S11. At this time, in the client B is stored the video program from the point (b) to a point (c). After the channel S11 (sub-video stream) is merged into its parent channel S6, if no other client is using the sub-channel S11 (i.e., the sub-channel of the channel S11), then the sub-channel S11 will be terminated.
At step 5, after the channel S11 is merged into the channel S6, while the client B continues to receive, on the channel S6, and stores the subsequent part of the video program sent from the VOD server 1 from the point (c), it reads from the point (b) and plays back the video program stored in its local memory in a FIFO manner, enabling the playback of the video program on the client B to be continued.
Although the event-driven method for channel merging are the most flexible method for controlling multicast channels, existing methods of this type have an evident drawback. If a channel is removed when it has merged into its parent channel or is canceled due to stopping or jumping events, those clients subscribing the sub-channels of this removed channel have to change the channels they have subscribed. For example, the CT scheme simply chooses the latest video stream channel in the earlier video streams still in the system as the next target to be merged, and the merge target computed by CT are not always reachable, even if no further new sub-channel is created. The reason is that the target stream channel may itself merge with its target channel before it can be reached by later channels. In this case, later stream channel must select a new merge target again by using the CT algorithm. Furthermore, the operations of the target stream channel such as random stopping, pausing, fast-forwarding, etc. will also make it impossible for the later stream channels to merge and will force them to reselect their new parent channels.
In order to inform affected clients of the change of merge tree, the video server must actively send a notification to the each of these clients. This could bring about the following disadvantageous effects:                1. Reverse notifications from a video server to clients significantly may increase the load of the video server, since the number of notifications is proportional to the number of affected clients and the frequency of unexpected channel stopping events.        2. Clients must be ready to accept incoming connections from unknown regions of the Internet, which increases the possibility for clients to be affected unexpectedly.        3. The reverse notifications may not be able to pass through the firewall with certain configurations. For example, if a client within a firewall tries to watch a video clip stored in a video server outside the firewall, the server will never be able to initiate the transmission of a notification to the client.        